home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / Libraries / Dots & Pixels / Rudimentary Documentation / Differential about < prev    next >
Text File  |  1995-09-29  |  10KB  |  130 lines

  1. Zeist, september 7, 1995
  2.  
  3. About Differential
  4. Differential is a program to study optic flow. It got its name from an early prototype designed to study whether differences in flow fields are really hard to detect (they are) Over a couple of months Differential has gained a lot of features. This has made its user interface, which originally was not perfect, but adequate, fairly bad.
  5.  
  6. Distribution policy
  7. Differential may be freely distributed when all of the following requirements are met:
  8.  
  9.     •  Differential is distributed unmodified
  10.     •  This documentation is included with the distribution, also without modifications
  11.  
  12. This implies that you may upload the program, together with this documentation, to online services. In the above requirements compression, copying to other media, conversion to MacBinary, and Hexbinning are not considered ‘modifications’.
  13. Specifically, Differential may be included in CD-ROM collections. If it is included on a CD-ROM, the author (reinder@neuretp.biol.ruu.nl) would be grateful to receive a presentation copy.
  14.  
  15. System requirements
  16. Differential is not a 100% normal Macintosh program and it does not properly check at startup whether its system requirements are met. Therefore, you should not run it while other programs are running or when you are not sure that the requirements it needs are met.
  17.  
  18. CPU
  19. A 68020 or better CPU with FPU. 950820: A special PowerMac native version, called ‘Differential PPC’ is available now.
  20.  
  21. Monitor
  22. The main monitor (the one with the menu bar on it) must be a monitor capable of displaying at least 640x480 pixels in 256-colour mode.
  23.  
  24. Keyboard
  25. An Apple extended keyboard II. Other keyboards with a numeric keypad may or may not work. Specifically, the (smaller) Apple standard keyboard can be used, but the functions of the '+' and '-' keys on its keyboard are interchanged.
  26.  
  27. Memory
  28. 1024K of free RAM. Differential can run in much less RAM, but since it does not recover well from out of memory situations (read: it ‘enters MacsBug’) it is best to give it plenty of RAM. Even with 1024K allocated Differential can run out of memory if you increase the number of dots to display sufficiently. If you have MacsBug installed Differential will give an out of memory message in the Debugger.
  29.  
  30. System software
  31. Differential has not been tested on many systems, but It works fine under System 7.5.1. I think that it does work under any System from version 7.0 on, but do not guarantee this. For optimum performance, it is best to run Differential ‘with extensions off’. You can boot your Mac in this state by holding down a shift key on your Keyboard during startup until the message ‘Extensions off’ appears below the line ‘Welcome to Macintosh’.
  32.  
  33. Using the program
  34. Start Differential. You are presented with a dialog box which looks like this:
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61. Enter the desired number of dots for each of the four stimuli and their respective lifetimes in the entry boxes at the top left of the dialog. Select a base resolution and a stimulus mask, and select whether to see a fixation dot and a circular mask. One can also select a 'switch interval'. The meaning of these terms is explained below under ‘Stimulus generation’.
  62. Restore defaults does just that. It can be used to restore the default settings.
  63. Quit quits the program. It is present here since one returns to this dialog box after seeing a stimulus.
  64. Click Run to display the stimulus. While the stimulus is showing one can use the following keys to control it:
  65. Mouse Button: shows the current flow settings of both flows at the right of the display. This is not continuously updated since it slows down the display. If the 'Mouse click logs to file' box was checked the data is also logged to a file (see below at 'log file contents')
  66. Caps lock: press or depress to select either of the two flows.
  67. Control: resets the current flow to a zero flow.
  68. Numeric keypad: press keys to adjust parameters of the current flow (selected with the Caps lock key). The picture at the right side of the display shows the division of the keypad in six three-key areas. The middle key of each of these areas sets the parameter in question to zero (or, in the case of shear magnitude or expansion, to one), the other two can be used to adjust the parameter. Pressing a Shift key in combination with one of these keys makes the variations faster.
  69. Escape: Press to return to the settings dialog.
  70.  
  71. Log file contents:
  72. The following is a commented example logfile:
  73.  
  74. Two 'flowdots' instances with 250 and 1000 dots
  75. frame timing without syncing: 23.5711ms (42.424834 frames/sec)
  76. frame timing with    syncing: 30.0008ms (33.332444 frames/sec)
  77. monitor frame takes         : 15.0008ms (66.663111 frames/sec)
  78.  
  79. 2 Vertical blanks per frame
  80.  
  81. These lines can be used to determine whether the display is 'stable'. 'without syncing' means 'at top speed', 'with syncing' is the speed used by the program. Its translation to vertical blanks per frame is shown on a separate line. From the data above one can see that, in this example, one frame at top speed takes about 1.5 vertical blanks (= video frames) Thus, some slack in both directions is available, so one can be relatively sure that every frame shown takes 30ms in this case. If time without syncing were close to either 15ms or 45ms one would have to suspicious since slight deviations in display times could cause a frame to take only one or three vertical blanking intervals. On the Mac, such slight deviations can not be avoided easily. For completer control one can disable interrupts, but that would make the program even more misbehaving than it already is.
  82.  
  83. Option settings were:
  84. d_log   = 1.01
  85. d_rot   = 1
  86. d_dir   = 1
  87. d_trans = 0.01
  88. stimulus= 1
  89. life 1  = 5
  90. life 2  = 10
  91.  
  92. These are the key sensitivities entered in the dialog box.
  93.  
  94. [rot = 25]
  95. [trans = (0,-0.16)]
  96.  
  97.  
  98. [trans = (0,-0.13);rot = 25]
  99. [trans = (-0.19,-0.16)]
  100.  
  101.  
  102. []
  103. [trans = (-0.19,-0.16)]
  104.  
  105.  
  106. [rot = -38]
  107. [trans = (-0.19,-0.16)]
  108.  
  109. These are the flows present when the mouse was pressed. '[]' denotes the zero flow, other flows list only those parameters which denote from the zero flow. The unit of measurement for rotation is ‘degrees per second’, for expansion and shear it is ‘per second’ (e.g. an expansion of 1.2 indicates that the stimulus gets 1.2 as big every second or 1.44 times as big every two seconds), and for translation it is ‘frame size per second’, where frame size is taken as the total unmasked display size (thus, identical units denote identical speeds, irrespective of the mask used, but a change in stimulus size does change the speeds). The translation to retinal speeds is of course dependant on viewing distance.
  110.  
  111. Stimulus generation
  112. Basically Differential generates stimuli in a square area of the screen. The stimuli contain a constant number of dots, each of which has a limited lifetime (Limited lifetimes are used to mask density differences which occur in the stimuli). Two types of stimuli are available, random noise stimuli and optic flow stimuli. The program generates two random noise stimuli and two optic flow stimuli. All four are shown in the same area of the screen. A special technique is used to mask the area where each of the stimuli is visible. One can select whether the display area is made circular by checking or unchecking the Circular mask check box. Moreover, one can select masks for each pair of noise/optic flow stimuli with the check boxes under ‘Stimulus masking’ in the dialog. The following masks are available:
  113. Transparent means no further masking has to take place. The stimuli are shown transparantly in a square or circular (depending on state of the Circular mask check box) window.
  114. Annulus restricts one pair of flows to a circle, whereas the other pair is shown only outside this circle.
  115. Halves restricts the flows to the left and right halves of the display, respectively.
  116. Quarts divides the display in a similar way into four parts, Eights into 8 parts.
  117. Checkers and Small checks divide the display in a kind of checker-board. It can be used to mimic a traditional random pixel array transparant motion stimulus (rather, it can be used to show that one can not mimic a transparant RPA stimulus with a random dot stimulus)
  118. Play with the Surprise check box and the other stimulus settings to figure out what it does.
  119. The Switch interval check box determines whether the flow parameters of the two stimuli are switched frequently, and how often this happens (the number entered signifies the number of display steps between such switches). For instance, when flow one has 1000 dots and is expanding, flow two has 0 dots and is rotating, and the switch interval is 60, the one visible flow will expand for about a second (depending on the display rate), then rotate for about a second, then expand for about a second, and so on. Such stimuli can teach us something about motion integration in the visual system.
  120. The Flickering setting causes Differential to insert a blank frame every other frame.
  121. Finally, the Slow Motion check box is there to slow down the program to about a 1 Hz refresh rate (the actual refresh rate depends on the refresh rate of the monitor the stimulus is displayed on). This makes it easier to check the stimulus generation. To get a feeling for the parameter settings, try running in slow motion with only a few dots. This enables one to trace individual dots.
  122.  
  123. Noise generation
  124. The parameter settings for each of the noise stimuli are number of dots, lifetime, and diffusion. Number of dots and lifetime are identical to the settings for the flow stimuli, diffusion determines the average displacement of each of the dots between successive frames. Increasing ‘Diffusion’ by one doubles the average displacement, a diffusion of 9 gives a maximal displacement of 1 pixel/frame.
  125.  
  126. Key sensitivity settings:
  127. These should normally not be changed. Checking the Allow modifications to sensitivities check box makes them editable. They can be changed for instance, when one discovers that one can not measure a certain threshold with a high enough resolution. They may also come in handy when one runs the program on a Macintosh which is significantly faster than the ones it is designed for (i.e. a Macintosh IIfx or a Quadra). The numbers shown have an implicit decimal point three places from the end.
  128.  
  129. Reinder Verlinde
  130.